home *** CD-ROM | disk | FTP | other *** search
/ Programmer Power Tools / Programmer Power Tools.iso / editor / j414src.arc / JOVE.H < prev    next >
C/C++ Source or Header  |  1989-10-10  |  4KB  |  175 lines

  1. /***************************************************************************
  2.  * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne.  JOVE *
  3.  * is provided to you without charge, and with no warranty.  You may give  *
  4.  * away copies of JOVE, including sources, provided that this notice is    *
  5.  * included in all the files.                                              *
  6.  ***************************************************************************/
  7.  
  8. /* jove.h header file to be included by EVERYONE */
  9.  
  10. #include <setjmp.h>
  11. #ifndef TUNED
  12. # include "tune.h"
  13. #endif
  14.  
  15. #if !defined(MAC)
  16. # include <sys/types.h>
  17. # include <string.h>
  18. #else
  19. # include <types.h>
  20. #endif
  21.  
  22. /* proto: macro to allow us to prototype any function declaration
  23.  * without upsetting old compilers.
  24.  */
  25.  
  26. #if defined(__STDC__) || defined(USE_PROTOTYPES)
  27. # define proto(x)        x
  28. #else
  29. # define proto(x)        ()
  30. #endif
  31.  
  32. /* UNDEF: macro to allow is to use ansi style undefinition of macros when
  33.  * declaring functions. i.e. 
  34.  *     extern int (vfork) (void)
  35.  * is declared as
  36.  *     extern int UNDEF(vfork) proto((void))
  37.  */
  38. #if defined(__STDC__)
  39. # define UNDEF(proc)    (proc)
  40. #else
  41. # define UNDEF(proc)    proc
  42. #endif
  43.  
  44. #if defined(__STDC__)
  45. #define    STDARGS    1
  46. # define    va_init(ap, parmN)    { va_start((ap), (parmN)); }
  47. #else
  48. # define    va_init(ap, parmN)    { va_start((ap)); }
  49. #endif
  50.  
  51. /* const: readonly type qualifier */
  52. #ifndef    __STDC__
  53. #define    const    /* Only in ANSI C.  Pity */
  54. #endif    /* !__STDC__ */
  55.  
  56. /* UnivPtr: universal pointer type */
  57. #ifdef    __STDC__
  58. typedef void    *UnivPtr;
  59. typedef const void    *UnivConstPtr;
  60. #else    /* !__STDC__ */
  61. typedef char    *UnivPtr;
  62. typedef const char    *UnivConstPtr;
  63. #endif    /* !__STDC__ */
  64.  
  65. #ifndef    EOF
  66. #define EOF    (-1)
  67. #endif
  68.  
  69. /* typedef structure definitions */
  70. #ifdef IPROCS
  71. typedef struct process    Process;
  72. #endif
  73. typedef struct window    Window;
  74. typedef struct position    Bufpos;
  75. typedef struct mark    Mark;
  76. typedef struct buffer    Buffer;
  77. typedef struct line    Line;
  78. typedef struct iobuf    IOBUF;
  79.  
  80. #include "buf.h"
  81. #include "wind.h"
  82. #include "io.h"
  83. #include "dataobj.h"
  84. #include "keymaps.h"
  85. #include "argcount.h"
  86. #include "util.h"
  87. #include "vars.h"
  88. #include "screen.h"
  89. #include "style.h"
  90.  
  91. /* return codes for command completion (all < 0 because >= 0 are
  92.    legitimate offsets into array of strings */
  93.  
  94. #define AMBIGUOUS    (-2)    /* matches more than one at this point */
  95. #define UNIQUE        (-3)    /* matches only one string */
  96. #define ORIGINAL    (-4)    /* matches no strings at all! */
  97. #define NULLSTRING    (-5)    /* just hit return without typing anything */
  98.  
  99. /* values for the `flags' argument to complete */
  100. #define NOTHING        0    /* opposite of RET_STATE */
  101. #define RET_STATE    1    /* return state when we hit return */
  102. #define RCOMMAND    2    /* we are reading a joverc file */
  103. #define CASEIND        4    /* map all to lower case */
  104.  
  105. #define FORWARD        1
  106. #define BACKWARD    (-1)
  107.  
  108. #define ARG_CMD        1
  109. #define LINECMD        2
  110. #define KILLCMD        3    /* so we can merge kills */
  111. #define YANKCMD        4    /* so we can do ESC Y (yank-pop) */
  112.  
  113. extern jmp_buf    mainjmp;
  114.  
  115. /* setjmp/longjmp args for DoKeys() mainjmp */
  116. #define FIRSTCALL    0
  117. #define ERROR        1
  118. #define COMPLAIN    2    /* do the error without a getDOT */
  119. #define QUIT        3    /* leave this level of recursion */
  120.  
  121. #define YES_NODIGIT    2
  122.  
  123. #define INT_OKAY    0
  124. #define INT_BAD        (-1)
  125.  
  126. extern char    NullStr[];
  127. extern char    *ProcFmt;
  128.  
  129. extern int
  130.     InMacDefine,    /* are we defining a macro right now? */
  131.  
  132.     LastKeyStruck,
  133.  
  134.     TOabort,    /* flag set by Typeout() */
  135.     errormsg,    /* last message was an error message
  136.                so don't erase the error before it
  137.                has been read */
  138.     RecDepth,    /* recursion depth */
  139.     InputPending,    /* nonzero if there is input waiting to
  140.                be processed */
  141.  
  142.     InJoverc,
  143.     Interactive,
  144.  
  145.     Crashing,    /* we are in the middle of crashing */
  146.     Asking,        /* are we on read a string from the terminal? */
  147.     InRealAsk,    /* are we currently executing real_ask()? */
  148.     inIOread;    /* so we know whether we can do a redisplay. */
  149.  
  150. extern char
  151.     *Inputp,
  152.     Minibuf[LBSIZE],
  153.     ShcomBuf[LBSIZE],
  154.     *version;
  155.  
  156. #define MESG_SIZE 128
  157. extern char    mesgbuf[MESG_SIZE];
  158.  
  159. #define CATCH \
  160. {\
  161.     jmp_buf    sav_jmp; \
  162. \
  163.     push_env(sav_jmp); \
  164.     if (setjmp(mainjmp) == 0) {
  165.  
  166. #define ONERROR \
  167.     } else { \
  168.  
  169. #define ENDCATCH \
  170.     } \
  171.     pop_env(sav_jmp); \
  172. }
  173.  
  174. #include "externs.h"
  175.